No functionality change at this time. I've split _LIBCPP_VISIBLE up into two flags: _LIBCPP_TYPE_VIS and _LIBCPP_FUNC_VIS. This is in preparation for taking advantage of clang's new __type_visibility__ attribute. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@176593 91177308-0d34-0410-b5e6-96231b3b80d8 
diff --git a/include/ratio b/include/ratio index 23f2267..f4e741e 100644 --- a/include/ratio +++ b/include/ratio 
@@ -231,7 +231,7 @@  };    template <intmax_t _Num, intmax_t _Den = 1> -class _LIBCPP_VISIBLE ratio +class _LIBCPP_TYPE_VIS ratio  {  static_assert(__static_abs<_Num>::value >= 0, "ratio numerator is out of range");  static_assert(_Den != 0, "ratio divide by 0"); @@ -292,7 +292,7 @@  #else // _LIBCPP_HAS_NO_TEMPLATE_ALIASES    template <class _R1, class _R2> -struct _LIBCPP_VISIBLE ratio_multiply +struct _LIBCPP_TYPE_VIS ratio_multiply  : public __ratio_multiply<_R1, _R2>::type {};    #endif // _LIBCPP_HAS_NO_TEMPLATE_ALIASES @@ -319,7 +319,7 @@  #else // _LIBCPP_HAS_NO_TEMPLATE_ALIASES    template <class _R1, class _R2> -struct _LIBCPP_VISIBLE ratio_divide +struct _LIBCPP_TYPE_VIS ratio_divide  : public __ratio_divide<_R1, _R2>::type {};    #endif // _LIBCPP_HAS_NO_TEMPLATE_ALIASES @@ -354,7 +354,7 @@  #else // _LIBCPP_HAS_NO_TEMPLATE_ALIASES    template <class _R1, class _R2> -struct _LIBCPP_VISIBLE ratio_add +struct _LIBCPP_TYPE_VIS ratio_add  : public __ratio_add<_R1, _R2>::type {};    #endif // _LIBCPP_HAS_NO_TEMPLATE_ALIASES @@ -389,7 +389,7 @@  #else // _LIBCPP_HAS_NO_TEMPLATE_ALIASES    template <class _R1, class _R2> -struct _LIBCPP_VISIBLE ratio_subtract +struct _LIBCPP_TYPE_VIS ratio_subtract  : public __ratio_subtract<_R1, _R2>::type {};    #endif // _LIBCPP_HAS_NO_TEMPLATE_ALIASES @@ -397,11 +397,11 @@  // ratio_equal    template <class _R1, class _R2> -struct _LIBCPP_VISIBLE ratio_equal +struct _LIBCPP_TYPE_VIS ratio_equal  : public integral_constant<bool, _R1::num == _R2::num && _R1::den == _R2::den> {};    template <class _R1, class _R2> -struct _LIBCPP_VISIBLE ratio_not_equal +struct _LIBCPP_TYPE_VIS ratio_not_equal  : public integral_constant<bool, !ratio_equal<_R1, _R2>::value> {};    // ratio_less @@ -460,19 +460,19 @@  };    template <class _R1, class _R2> -struct _LIBCPP_VISIBLE ratio_less +struct _LIBCPP_TYPE_VIS ratio_less  : public integral_constant<bool, __ratio_less<_R1, _R2>::value> {};    template <class _R1, class _R2> -struct _LIBCPP_VISIBLE ratio_less_equal +struct _LIBCPP_TYPE_VIS ratio_less_equal  : public integral_constant<bool, !ratio_less<_R2, _R1>::value> {};    template <class _R1, class _R2> -struct _LIBCPP_VISIBLE ratio_greater +struct _LIBCPP_TYPE_VIS ratio_greater  : public integral_constant<bool, ratio_less<_R2, _R1>::value> {};    template <class _R1, class _R2> -struct _LIBCPP_VISIBLE ratio_greater_equal +struct _LIBCPP_TYPE_VIS ratio_greater_equal  : public integral_constant<bool, !ratio_less<_R1, _R2>::value> {};    template <class _R1, class _R2>